#include "VentanaPropiedades.h"

VentanaPropiedades::VentanaPropiedades(Glib::RefPtr<ListStore> modelo):
	contenedorPrincipal(false,15),
	contenedorBotones(false,0),
	contenedorTabTracker(false,15),
	contenedorTabActividad(false,15),
	contenedorTabOpciones(false,15),
	botonCerrar(Stock::CLOSE)
{

	// seteo las propiedades de la ventana
	this->set_default_size(500,500);
	this->set_position(WIN_POS_CENTER_ALWAYS);
	this->set_border_width(10);

	// incluyo la notebook y el boton Cerrar en la ventana
	this->add(contenedorPrincipal);
	contenedorPrincipal.pack_start(notebook,true,true);
	this->contenedorPrincipal.pack_start(this->contenedorBotones,false,false,0);
	this->contenedorBotones.pack_end(botonCerrar,false,false,0);
	this->botonCerrar.signal_clicked().connect(sigc::mem_fun(*this,&VentanaPropiedades::hide_all));

	// meto las pestañas en la notebook
	this->notebook.append_page(this->contenedorTabActividad, "Actividad");
	this->notebook.append_page(this->contenedorTabPeers, "Peers");
	this->notebook.append_page(this->contenedorTabTracker,"Tracker");
	this->notebook.append_page(this->contenedorTabOpciones,"Opciones");


	// Seteo las opciones de la pestaña Tracker
	this->contenedorTabTracker.set_border_width(15);
	this->labelTrackerAnuncio.set_alignment(0.0,0.5);
	this->contenedorTabTracker.pack_start(this->labelTrackerAnuncio,false,false,0);
	this->labelTrackerProximoAnuncio.set_alignment(0.0,0.5);
	this->contenedorTabTracker.pack_start(labelTrackerProximoAnuncio,false,false,0);
	this->labelTrackerUltimoAnuncio.set_alignment(0.0,0.5);
	this->contenedorTabTracker.pack_start(this->labelTrackerUltimoAnuncio,false,false,0);

	// seteo las opciones de la pestaña Actividad
	this->contenedorTabActividad.set_border_width(15);
	this->labelEstado.set_alignment(0.0,0.5);
	this->contenedorTabActividad.pack_start(this->labelEstado,false,false,0);
	this->labelProgreso.set_alignment(0.0,0.5);
	this->contenedorTabActividad.pack_start(this->labelProgreso,false,false,0);
	this->labelBajado.set_alignment(0.0,0.5);
	this->contenedorTabActividad.pack_start(this->labelBajado,false,false,0);
	this->labelSubido.set_alignment(0.0,0.5);
	this->contenedorTabActividad.pack_start(this->labelSubido,false,false,0);
	this->labelRatio.set_alignment(0.0,0.5);
	this->contenedorTabActividad.pack_start(this->labelRatio,false,false,0);
	this->labelError.set_alignment(0.0,0.5);
	this->contenedorTabActividad.pack_start(this->labelError,false,false,0);

	// seteo las opciones de la pestaña Opciones
	this->contenedorTabOpciones.set_border_width(15);
	HBox* contenedorMaxPeersConectados = manage(new HBox(false,0));
	this->contenedorTabOpciones.pack_start(*contenedorMaxPeersConectados,false,false,0);
	contenedorMaxPeersConectados->pack_start(labelMaxPeersConectados,false,false,0);
	contenedorMaxPeersConectados->pack_start(spinButtonMaxPeersConectados,false,false,0);
	this->labelMaxPeersConectados.set_markup("<b>Cantidad máxima de peers: </b>");
	Adjustment* ajuste = manage(new Adjustment(0,0,500,1,2,0));
	this->spinButtonMaxPeersConectados.set_adjustment(*ajuste);

	// seteo las opciones de la pestaña Peers
	this->vistaPeers.set_model(modelo);
	this->contenedorTabPeers.set_policy(POLICY_AUTOMATIC,POLICY_AUTOMATIC);
	this->contenedorTabPeers.set_border_width(10);
	this->contenedorTabPeers.add(vistaPeers);

	/********** Agrego las columnas a al TreeView *************************/
	TreeView::Column* columna;
	int i;

	i = this->vistaPeers.append_column("Direccion ip", this->columnasPeer.ip);
	columna = this->vistaPeers.get_column(i-1);
	columna->set_min_width(150);
	columna->set_reorderable();
	columna->set_resizable();

	i = this->vistaPeers.append_column_numeric("Subida",this->columnasPeer.subida,"%.2f");
	columna = this->vistaPeers.get_column(i-1);
	columna->set_min_width(70);
	columna->set_reorderable();
	columna->set_resizable();

	i = this->vistaPeers.append_column_numeric("Bajada",this->columnasPeer.bajada,"%.2f");
	columna = this->vistaPeers.get_column(i-1);
	columna->set_min_width(70);
	columna->set_reorderable();
	columna->set_resizable();
	/************************************************************************/
}

VentanaPropiedades::~VentanaPropiedades()
{

}

